/**
 * @file HelpFun.h
 * @author shikang999@126.com
 * @brief 
 * @version 0.1
 * @date 2025-06-21
 * 
 * @copyright Copyright (c) 2025
 * 
 */
#pragma once
#include "File.h"
#include "BaseData.h"

namespace Help
{

using namespace Solver;

//1. 写数据
void writeVecValue(File &fw, const VectorXd_t &inDatas);

//2. 读数据
void readVecValue(File &fr, VectorXd_t &outDatas);

//1. 写数据
void writeVecValue(File &fw, const vecValue_t &inDatas);

//2. 读数据
void readVecValue(File &fr, vecValue_t &outDatas);

//3. 打印变量
std::string printVecValue(const VectorXd_t &x);

//4. 字符串是否全为数字
bool strIsNumber(const std::string &s);

//5. 尝试将字符串s转为int64类型数据,转换成功返回true
bool tryToInt64(const std::string &s, int64_t &ret, const int64_t defaultValue = 0, const int64_t minValue = std::numeric_limits<int64_t>::min(), const int64_t maxValue = std::numeric_limits<int64_t>::max(), const std::string &errorNote = "");

//6. 尝试将字符串s转为double类型数据,转换成功返回true. 支持科学计数法
bool tryToDouble(const std::string &s, long double &ret, const long double defaultValue = 0, const long double minValue = std::numeric_limits<long double>::min(), const long double maxValue = std::numeric_limits<long double>::max(), const std::string &errorNote = "");

//7. 获取程序名称
std::string getExeName();
}